perm filename TEACH[E,ALS]2 blob
sn#119935 filedate 1974-09-19 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00022 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00003 00002 To learn to use the editor "E" type R EFOO/2P←TEACH[UP,DOC] with a
C00006 00003 General remarks
C00010 00004 PAGE MOVING commands.
C00015 00005 E has several INTER-LINE mode commands.
C00020 00006 INTRA-LINE commands.
C00029 00007 Some less important line editing commands.
C00031 00008 ATTACH and COPY.
C00038 00009 The ADD-TEXT and LINE-INSERT modes.
C00042 00010 Modes, moods and states.
C00044 00011 The ubiquitous carriage return <cr>. Its meanings and its foibles.
C00047 00012 The useful but dangerous <vt>.
C00050 00013 FIND commands are string searching commands.
C00058 00014 EXTEND commands.
C00073 00015 System commands to evoke E.
C00077 00016 Credits:
C00080 00017 APPENDIX A. INTER-LINE commands (see page 4 and 5 for details).
C00083 00018 APPENDIX B INTRA-LINE commands (see page 6 and 7 for details).
C00087 00019 APPENDIX C LINE-INSERT commands (see page 9 for details).
C00090 00020 APPENDIX D ATTACH and COPY commands (see page 8 for details).
C00093 00021 APPENDIX E EXTEND commands (see page 14 for details).
C00096 00022 APPENDIX F FIND commands (see page 13 for details).
C00105 ENDMK
C⊗;
To learn to use the editor "E" type R E;FOO/2P←TEACH[UP,DOC] with a
carriage return and follow instructions.
This will copy TEACH into your file area under the name FOO and allow
you to read and modify it for practice. You may use some other name!
You are now looking at page 2 of this file (see top line with asterisks).
Page 1 is the "directory" page used by E itself and of use to you later.
ABREVIATIONS used in TEACH to characterize commands.
α means hold the "CONTROL" key down while typing a character.
β means hold the "META" key down while typing a character.
⊗ means hold both "CONTROL" and "META" keys down while typing.
<cr> carriage return key. <lf> line feed key.
<tab> tab key. <alt> altmode key.
<bs> backspace key. <form> form-feed key.
<vt> the VT key. <clear> the clear key.
CURRENT means the current line (with the →, ↔ or | on the left).
Most commands are single characters typed with one or both of the two
special keys held down as specified by α, β or ⊗ as defined above.
The mnemonic equivalents of the commands will be shown in capitals in
the definitions that follow.
When a number is shown in a command, this is by way of example, and any
desired number may,of course, be used.
If you make a mistake or get into a state you don't understand, type <alt>.
>> indicates a line which is present for you to play with.
! indicates an instruction to follow for practice.
! Type ⊗P to go on to PAGE 3. (hold CONTROL and META down and type P).
General remarks
E is a page oriented editor designed for use with a scope terminal.
It brings one page of the text into core, as requested, and it
displays a portion of this page as if through a window. A line
pointer and an underscoring cursor mark the position in the text
where editing is to occur. Special commands allow one to go from
page to page, to move the window up or down on the page and to move
the line pointer and cursor as desired.
E does not make a separate disk copy of the file being edited unless
requested to do so by the use of the command form shown on page 2,
so take care or you may damage a file that belongs to someone else.
E achieves its speed (1) by using the system line editor and by only
changing the core copy of the text on the completion of a line edit,
and (2) by updating the disk copy of the page only on the completion
of a page edit (automatically effected by a call for another page).
One can undo an entire page of incorrectly made modifications by
cancelling an update, but unfortunately, one can also lose an entire
page of desired modifications or additions if the system should go
down unexpectedly. Always remember that the text shown on the scope
does not necessarily mirror the true state of the text on the disk.
E is best understood by recognizing that it operates in a variety of
different modes and that many commands are appropiate only to certain
modes. In fact some commands have quite different effects depending
upon the mode that E is in at the time that the command is given. The
dominant mode is the INTER-LINE mode which allows for page, window
and line marker movement commands.
! Type ⊗P for the next page. This is an INTER-LINE command.
PAGE MOVING commands.
PAGE-MOVING commands are single characters typed with both the CONTROL
and META keys held down. They may take modifiers as shown below.
⊗P Go to the next PAGE. (You have just done this).
⊗-⊗P Back up to the previous page. ! Try this and then return with ⊗P.
⊗+⊗7⊗P Go foreward 7 pages if possible otherwise to the last page.
⊗-⊗3⊗P Go backward 3 pages if possible otherwise to the first page.
⊗7⊗P Go to page 7.
! If you are sure that you know these commands, skip around a bit.
! Note that the directory on page 1 lists the first line of each page.
You are now looking at a longer page than before. Note two things:
1 The top line contains asterisks, the page number and the file name.
2 A bottom line contains dashes where on page 2 there were asterisks.
The asterisks mean that you are seeing the page through a window starting
at the top of the page while the dashes mean that there is yet more on
the page than that shown. On moving the window down, (we will do this
soon) dashes will replace the top asterisks. If you can then see to the
end of the page asterisks will appear at the bottom.
Note also that there are some lines at the very bottom that echo your
command or acknowledge its execution. Watch these lines to detect errors.
Several commands allow you to move the window up and down on the page
and to move the CURRENT line marker (the arrow on the left) around.
! Now type ⊗W to advance the WINDOW to see the rest of this page.
Good for you. ! Now before you forget type ⊗L to go back and try it again.
Note that the window moved down on the page only far enough to get to
the end of the page. Had the page been longer, an entirely new window-
ful might have appeared (except for the former last line which is saved).
The → which had previously been attached to the first line of text, moved
to the last line and stayed with it as the window moved. This arrow
points to a line called CURRENT. This line would be affected if you were
to do some INTRA-LINE editing. More on this later.
It is good practice to limit the page size to perhaps 150 lines. This eases
the load on the editor and makes the directory of more use, if you adopt
the practice of starting each page of code with a suitable comment.
You will next want to be able to move the CURRENT line pointer up and down,
You will find this information on the next page.
! So ⊗P.
E has several INTER-LINE mode commands.
⊗W Advance the WINDOW, that is, move the last line to the top.
If there is less than a windowful left, move the window only
enough to see to the end. (You know this).
⊗L Move the window up so that the first line becomes the LAST. This
is the reverse of ⊗W.
<cr> Move the "Current line" pointer down a line. ! Try this.
⊗> Move the pointer down 4 lines. This takes 4 keys at once.
⊗≥ Move the pointer down 16 lines. This also takes 4 keys.
! Use the above instructions to get CURRENT to this line. If you should go
too far, read the instructions that follow to get back.
<vt> Move the "Current line"pointer up a line. !(Try this now).
⊗< Move the pointer up 4 lines. (Be sure to depress the <top> key).
⊗≤ move the pointer up 16 lines.
⊗T Move the pointer up to the TOP line, adjusting the window to show
a few lines above this if possible. !(Try this now).
⊗B Move the pointer to the BOTTOM line, adjusting the window to show
a few more lines if possible. !(Try it).
⊗J Move (JUMP) the window so that the CURRENT line is at the top.
⊗D DELETE the entire CURRENT line. (Don't try this unless CURRENT
is at a practice line). <alt> does not undo this command.
⊗Q Insert a copy of the line just above CURRENT and open it
for editing (i.e. enter INTRA-LINE mode, see next page).
! Try these commands several times ending with ⊗B commands until
asterisks appear at the BOTTOM.
Still another command of use for the quick scanning of a file is:
<form> Do a ⊗W if there is more material on this page, otherwise a ⊗P.
Caution: be sure E is in the INTER-LINE mode before using.
Two other commands that you will need later are:
⊗. Write the windowed page (as corrected) into the disk file.
⊗E DO a ⊗. and then EXIT to the system monitor.
Most of the INTER-LINE commands require the use of both the CONTROL and
META keys. <cr> and <vt> are exceptions. These are rather special and
they do more than just move CURRENT around.
When you are editing a line the carriage return signals the end of the
editing. One must also be able to introduce a carriage return into the
text. This will be explained in due course.
The reason for moving the pointer around is, of course so that you can
edit a line of text, add more text or even delete some on occasion.
E uses the line editing commands that are a part of the operation system.
You may already know. but for completeness theY will be summarized on
the next page. Almost anything that one can type that does not require
the META key will usually enter the INTRA-LINE mode.
! When you are ready use the <form> command to go to the next PAGE.
INTRA-LINE commands.
Typing a character without a CONTROL or META key, will normally invoke the
line editor and the character is typed into the CURRENT line. A cursor
will appear under the first character in the line and in that position
where the next typed character will go. A character so typed overwrites
the character that was at the cursor's position E will be in the
INTRA-LINE mode.
A word of caution- it is usually safe to continue typing on entering the
INTRA-LINE mode without waiting for the system to catch up. This can
fail, so look before giving a carriage return and if anything is amiss
type <alt> and start over again. Strange things can happen. Do not try
to save a partially correct line for later re-editing.
A change in the overwriting rule occurs when the CURRENT line is at the
lower row of asterisks. Types into this line causes the asterisks to
disappear with extra space on the page automatically added to allow for
the material typed. ! Remember to try this when you come to the bottom
of this page.
When in the INTRA-LINE mode a <cr> will terminate the mode and move CURRENT
to the next line. An α<cr> will terminate INTRA-LINE mode without moving
CURRENT. Remember that the intra-line corrections do not appear in the
core immage until you issue one of these commands and that the version on
the disk still does not show your corrections until a disk update has
been initiated. When in this intermediate state the letter W will appear
at the end of the title line (with asterisks or dashes) at the top of the
window, meaning that something is yet to be written. If your change will
require the directory to be changed, the letter D will also appear. A
letter X can also appear if the changes will require an extension in the
space on the disk assigned to the current page.
! If this line is at the bottom of the screen do a ⊗W.
Most of the line editing commands listed below will also enter the INTRA-
LINE mode from the INTER-LINE mode.
! Try typing something into the next line.
<< This is a practice line. This is a practice line. This is for practice.
If you make a mistake and perhaps lose some valuable information hit <alt>
rather than <cr> and your data will reappear as if by magic. ! Try it.
! Move the arrow down to the top of the following list and give a ⊗J in
order to get more of the list on the screen at one viewing.
Some usefull line editing commands are:
α<space> Move the cursor to the right 1 space.
α4α<space> Move the cursor 4 spaces to the right.
α<bs> Move the cursor to the left 1 space.
α5α<bs> Move the cursor 5 spaces to thee left.
α<form> Move the cursor to the start of the line.
α<tab> Move the cursor to the end of the line.
αS then <char> move the cursor to the first occurance of <char>.
α3αS then <char> move the cursor to the 3rd occurance of <char>
αD DELETE a character and move the rest of the line to the left.
If at the end of the line, this will delete the <cr>.
Caution: don't try to join two long lines.
<bs> BACK SPACE (at the end of the line or when a wrong character
has just been typed).
β<bs> Delete the character to the left of the cursor position.
β<char> Make room and insert <char> ahead of the cursor position.
β<cr> Insert a carriage return and stay in intra-line mode.
β<vt> DON'T, at least not until you know better.
αI Enter INSERT mode (like holding META down continuously).
Everything that you type including carriage returns but
excepting α,β or ⊗ commands will appear as text.
Any INTRA-LINE command will cause one to leave the INSERT
mode. The safest command under these conditions is α<space>.
<cr> Leave intra-line mode, accept the line and move CURRENT down.
α<cr> Leave intra-line mode, accept the line, do not advance CURRENT.
α<vt> Leave intra-line mode, accept the line and move current up.
<alt> Restore the line to it original condition and leave intra-mode.
There are several other INTRA-LINE commands that are of less importance than
the ones just listed. These are discribed on the next page and then on
the page after that there is a discussion of some line moving commands.
! Try introducing several lines of text beyond this point.
! Before leaving this page try messing it up rather badly by all
sorts of corrections and then type ⊗XCANCEL<cr>. Be sure that this
command has worked before leaving the page or your corrections will
be cast in concrete. If it did not work the first time try giving
several <cr> commands and then try again.
! Go to the next page if you are interested or skip to page 8.
Some less important line editing commands.
⊗<vt> Accept the line and back CURRENT up a line.
⊗↑ Accept the line, then back to the end of the previous line.
⊗↓ Accept the line, then goes to the end of the next line.
These commands work in both INTER-LINE and INTRA-LINE modes.
If you are editing a line and type something that the line editor does not
understand it will usually ignore the error (after thinking about it for
a moment) but don't bank on this too heavily because it can fail.
If you type a legal ⊗ command (other than ⊗P or ⊗D) when in intra-line mode
the line will be accepted as edited and the command will be carried out.
! Get into a line, and type ⊗J, or ⊗W, or ⊗≥. Also try ⊗P, ⊗D.
The α<cr> command that works to recall a line from the system buffer in
the system's monitor mode does not work in E but is replaced by the copy
command which will be explained on the next page. You will recall that
α<cr> has a diferent meaning in E. What is it?
ATTACH and COPY.
The ATTACH command causes the editor to put one or more contiguous lines
into an attach buffer. One can then moves these lines up or down on the
page or from page to page with the same commands that move CURRENT
around. The attached lines simply follow along. To avoid confusion one
must think of this as a mode changing command.
To show that the editor is in the ATTACH mode, the arrow at the left is
changed to a vertical bar (thus |) marking the lines that are attached.
Basic commands.
⊗A ATTACH the CURRENT line and change the "→" to a "|".
⊗3⊗A ATTACH 3 lines starting with CURRENT aand mark these with "|'s".
If a number greater than 8 is used (for the 3 as in the example)
only the first 4 and the last 3 lines are shown. A row of dots
is used to indicate that some attached lines are not shown.
⊗E Deposit the attached lines as positioned and EXIT from the mode.
Note that this command has a different meaning when one is NOT
in the ATTACH mode (it then means EXIT editing). Don't stutter
when typing it. Give the system time to react.
⊗R REPLACE the attached lines in their original location and leave
the ATTACH mode.
⊗K KILL the attached lines (they go away beyond recall) and exit
from the ATTACH mode.
⊗C Make a COPY of the CURRENT line and ATTACH this copy.
⊗5⊗C Make a COPY of 5 lines starting with CURRENT and ATTACH these.
Relative arguments.
Relative-argument commands add or remove lines from the end of the
attach buffer thus:
⊗+⊗A Attach 1 more line beyond those already attached.
⊗+⊗3⊗A Attach 3 more lines beyond those already attached.
⊗-⊗A Detach 1 line from the end of those already attached.
⊗-⊗2⊗A Detach 2 lines from the end of those already attached.
⊗+⊗C Copy 1 more line beyond those already copied.
⊗+⊗4⊗C Copy 4 more lines beyond those already copied.
⊗-⊗C Remove 1 line from the end of the copied set.
⊗-⊗2⊗C Remove 2 lines from the end of the copied set.
If the attached lines have been moved before these relative-argument
commands are given then additions and deletions are made in terms of
the neighboring lines in the new location. This gets a bit hairy in
the case of deletions but it is a very useful device for assembling a
set of copied lines from several different places.
Funny but perhaps useful things happen if one uses a negative argument
that is larger than the number that have been attached. ! Try it.
Note that all of the lines attached by a single command must be from
the same page. They can not be deposited across a page boundry.
A word of warning, a hazard is involved in using ⊗A to move lines from
page to page. The attached lines can be lost if the system should
crash during the interval between the removal of the attached lines
from one page and the final updating of the page to which they are
moved. This hazard can be avoided by copying the lines rather than
attaching them and then going back and deleting the original copy.
This precaution is hardly necessary for a line or two but it is a
wise one when you are moving large blocks ot text.
Moving lines from page to page takes time, so don't get impatient.
This is a good place to comment on the BUBBLING report that you may
have noticed in the scratch-pad lines at the bottom of the screen.
This notice appears when a major rearrangement of the text between
records becomes necessary. This also takes time.
! Try attaching the practice lines below and move them around.
If you get too far from home give a ⊗R command and you will be back.
<< This is practice line number 1.
<< This is practice line number 2.
<< This is practice line number 3.
<< This is practice line number 4.
<< This is practice line number 5.
<< This is practice line number 6.
<< This is practice line number 7.
<< This is practice line number 8.
<< This is practice line number 9.
<< This is practice line number 10.
The ADD-TEXT and LINE-INSERT modes.
One enters the ADD-TEXT mode by moving the arrow to the bottom asterisks.
One can then simply start to type and the end-of-page marker will
go away to make room. All of the usual INTRA-LINE commands may be
used. On the completion of a line edit the asterisks again appear on
the line below the added text.
The LINE-INSERT mode allows one to insert lines of text at other points.
It differs from the ADD-TEXT mode in that certain commands are illegal.
One must be careful to leave the mode properly or dire things can happen.
The fact that the editor is in the LINE-INSERT mode is signalled by a
double arrow CURRENT line marker ↔ in place of the right arrow →.
To enter the LINE-INSERT mode:
⊗<cr> Enter LINE-INSERT mode, insert a blank line ahead of the text
at CURRENT and mark the new line with the double arrow ↔.
If you are in the middle of a line, this will break the line
into two separate lines with the ↔ at the start of a blank
line between the two portions.
This does something else, if you are already in LINE-INSERT
mode (see below).
While in LINE-INSERT mode:
<cr> Accept the line and move the ↔ to newly inserted blank line.
α<cr> Leave the LINE-INSERT mode and accept the line in question.
⊗<cr> Insert a blank line (if not in the middle of a line).
If you are in the middle of a line, this will break the line
into two separate lines and position the cursor to be ready
to accept text at the end of the second portion. At the
present time a bug in E prevents the second portion from
showing until the next <cr> has been typed, but it's there.
<vt> Don't. This writes an integral sign on the screen but puts a
vertical tab symbol in the text which can do funny things.
α<vt> Leave the LINE-INSERT mode and accept the line but move the →
back to the line ahead of the accepted line.
⊗<vt> Don't.
If you are in the middle of a line, this will split the line
into two portions and cause the second portion to overwrite
the text in the line ahead of the one being edited.
<alt> Accept the line up to the cursor but delete the rest and leave
the LINE-INSERT mode with the arrow pointing to the remaining
text or to the next line.
! Try these somewhere.
>> perhaps between here
>> and here
! ⊗P to continue.
Modes, moods and states.
The great power of E lies in its many modes. At the same time, E can also
be moody if one tries to give it certain commands when it is not in the
appropiate mode. It can even get into a state where it will not listen
to reason. In fact, you may easily lose much of your recent editing. So
it may be well to review the matter of modes.
MODES can be characterized by:
the modes FROM which they can be entered,
the kinds of commands that are ACCEPTable, and
the modes TO which they can go.
MODE FROM ACCEPT TO
INTER-LINE anywhere all α,β and ⊗ all
<cr>,<vt>
INTRA-LINE INTER,ADD-T, all α or β INTER,INSERT
LINE-I, text char,<cr> LINE-I
INSERT INTRA α commands INTER,INTRA
text char.<cr> ADD-T,LINE-I
ADD-TEXT INTER,INTRA all α,β or ⊗ INTER.INTRA
text char,<cr>,<vt> LINE-INSERT
LINE-INSERT INTER,INTRA all α or β INTER,INTRA
ADD-T text char,<cr>
avoid <vt> 's
ATTACH INTER page,window and INTER
line moving
commands
⊗E,⊗R and ⊗K
EXTEND INTER certain word commands system monitor
see a later page INTER
The ubiquitous carriage return <cr>. Its meanings and its foibles.
Command Mode Meaning
<cr> INTER-LINE Move Current down to the next line.
INTRA-LINE Accept line and move Current down.
INSERT Accept line and move CURRENT down.
ADD-TEXT Accept line and move CURRENT down.
LINE-INSERT Accept line and make space for next line.
ATTACH Move the Attached lines down one line.
α<cr> INTER-LINE Do nothing.
INTRA-LINE Accept line and do not move CURRENT.
INSERT Accept line and do not move CURRENT.
ADD-TEXT Accept line and do not move CURRENT.
LINE-INSERT Accept line, exit INSERT mode.
ATTACH Don't * (gets confused and does nothing).
β<cr> INTER-LINE Do nothing.
INTRA-LINE Don't * (garbages the line).
INSERT Accept line to cursor and introduce a <cr>.
ADD-TEXT Accept line and do not move CURRENT.
LINE-INSERT Accept line and move CURRENT down.
ATTACH Don't * (illegal and gets confused).
⊗<cr> INTER-LINE Enter LINE-INSERT mode
INTRA-LINE Split line, enter LINE-INSERT mode between.
INSERT Split line, enter LINE-INSERT mode between.
ADD-TEXT Split line and gets confused.
LINE-INSERT Split line, Cursor to end of second part.
ATTACH Illegal. Do nothing.
Commands which need fixing are:
INTER-LINE α<cr>,β<cr>
INTRA-LINE β<cr>,⊗<cr>
INSERT ⊗<cr>
ADD-TEXT β<cr>,⊗<cr>
LINE-INSERT β<cr>,⊗<cr>
ATTACH α<cr>,β<cr>,⊗<cr>
The useful but dangerous <vt>.
These commands should be reverse direction <cr>'s but they are not.
The reasons are deeply hidden within E. For the moment, beware.
<vt> INTER-LINE Move CURRENT up one line.
INTRA-LINE Don't *. A vt is written into the text.
INSERT Don't *. A vt is written into the text.
ADD-TEXT Don't * if some text has been typed.
LINE-INSERT Don't *. A vt is overwritten into the text.
ATTACH Move the Attached lines up one line.
α<vt> INTER-LINE Move CURRENT up one line.
INTRA-LINE Accept line and move CURRENT up a line.
INSERT Accept line and move CURRENT up a line.
ADD-TEXT Move CURRENT up a line.
LINE-INSERT Accept line and move CURRENT up a line.
ATTACH Move the Attached lines up one line.
β<vt> INTER-LINE Move CURRENT up one line.
INTRA-LINE Don't *. A vt is written into the text.
INSERT Accept line and move CURRENT up a line.
ADD-TEXT Move CURRENT up a line.
LINE-INSERT Accept line and move CURRENT up a line.
ATTACH Move the Attached lines up one line.
⊗<vt> INTER-LINE Move CURRENT up one line.
INTRA-LINE Accept line and move CURRENT up a line.
INSERT Accept line and move CURRENT up a line.
ADD-TEXT Move CURRENT up a line.
LINE-INSERT Don't.
ATTACH Move the Attached lines up one line.
Commands which need fixing are:
INTRA-LINE <vt>,β<vt>
INSERT <vt>
ADD-TEXT <vt>
LINE-INSERT <vt>,⊗<vt>
FIND commands are string searching commands.
The search can be specified in several different ways:
1) The search can be for an alphameric string that is separated from
the rest of the text by non-alphameric characters or it may be
for any string regardless of its surroundings.
Note that no distinction is made between upper and lower case.
⊗FSmith<cr> Find Smith or smith but not this string in
blacksmith or in Smithsonian.
αFSmith<cr> Find smith as an isolated word or as a
part of a longer string (in blacksmith for example).
The string is no longer limited to alphamerics but
use care because there are still some bugs in E.
2) The search can be restricted to a single page or it may range over
the entire text.
The commands just listed were for single page searches. The
corresponding multa-page search commands are:
⊗XF Smith<cr> for a delimited string, and
αXF Smith<cr> for the string regardless of surroundings.
Note that the ⊗ and α keys are not used with the F and
that a space is required between the F and the string.
The ⊗X and αX are EXTEND commands which permit more than
single character commands, hence the need for the space.
3) The action that is to be taken on the successful termination of
the search is specified by the delimiter used to terminate the
string.
The <cr> as used above, moves the → to the found line.
A repeat of the Find command, if given, will again start with
this same line, but after the found string so that multiple
occurances of a string within a line can be found.
Accepted action-defining delimiters are:
<cr> Move CURRENT to the found line or report failure.
α<cr> Terminate as with <cr> but move the cursor until it
is under the first character of the string.
Note that this leaves E in the INTRA-LINE mode. A
second FIND command can however be given and the
next occurance will be found.
If a FIND command is terminated with <cr>, an α<cr>
will still move the cursor to the string.
⊗J JUMP the line with the found string to the top of the
window.
⊗<cr> Enter the LINE-INSERT mode with the ↔ at an inserted
blank line ahead of the found line.
⊗P Make the search over the directory PAGE and then display
the referenced page.
⊗A Attach all lines starting with CURRENT up to and including
the line with the specified string.
If used with an EXTEND command and if the string is not
on the windowed page, the attachment will begin at
the top of the page on which the string is found.
Attachments do not cross page boundries.
⊗C COPY all lines starting with CURRENT up to and including
the line with the specified string.
See ⊗A above for restriction with an EXTEND command.
⊗D DELETE all lines beginning with CURRENT up to but not
including the line with the specified string.
See ⊗A above for EXTEND command restriction.
This is a very dangerous command so use it with caution.
4) The search can be for the first occurance of the specified string
or for the n'th occurance.
⊗3⊗Fsmith<cr> FIND the 3rd occurance of SMITH.
⊗Fsmith⊗3<cr> FIND the 3rd occurance of SMITH (alternate form).
A string, once specified, is sticky, that is one need not retype the string
for a repeat of the command. The search string for a within-one-page
search is remembered independently from that for an EXTEND search.
A repeat factor, once specified is also sticky.
<alt> Cancel both string and repeat specifications.
EXTEND commands.
Certain commands are potentially too dangerous to be safely evoked by
a single character. There are also more commands than can be obtained
with single characters. These contingencies are handled by the
EXTEND command specified as follows:
⊗X Accept the string which follows as a command.
This string may be abbreviated as long as no ambiguity
results. The string must be terminated by a space if
parameters are required or by a <cr> or some other
delimiter.
The EXTEND form of the FIND command has already been discribed. In
this case only a single letter needs be used, but any partial
string up to the complete word FIND is acceptable.
EXTEND commands.
⊗XFIND see earlier page on FIND.
αXFIND see earlier page on FIND.
⊗XDRAW<cr> Redraw the complete screen. Used when glitches
show on the screen from whatever cause.
⊗XMARK<cr> Insert a page mark between the CURRENT line and
the line above it and display the new page.
⊗XDELETE<cr> Delete the page mark between this page and the next.
Note that using this command just after a ⊗XMARK
command does not undo the newly inserted mark
but it does delete the next mark.
⊗XCANCEL<cr> Do not write out the current page but instead
reread it in from the disk.
⊗XREADONLY<cr> If in read-write write out the current page and
then inhibit any further writing.
⊗XREADWRITE<cr> Disable the write-inhibit.
⊗XGO<cr> Exit from E and repeat the last RPG command.
⊗XDDT<cr> Branch to RAID if it is present. RαG returns.
Additional EXTEND commands thet may not be completely debugged.
⊗XAPPEND<cr> Read in an additional page after the current
one so that the two may be edited togather.
Effect is undone by ⊗XCANCEL<cr>.
Caution: this increases core size.
⊗XCLOSE<cr> Close and reopen file so it can be accessed
by someone else? (unverified)
⊗XDIRED<cr> Go to the directory editor.
⊗XDPYALWAYS
⊗XPPYSKIP
⊗XINSERT
⊗XJFILL<cr> Redistribute text between lines as if to
justify but do not pad lines with blanks.
(see ⊗XJUST<cr> below for conditions).
⊗XJUST<cr> Justify the current page (to 69 characters).
If in ATTACH mode justify the attached lines.
⊗XJUST⊗13<cr> Justify 13 lines starting with CURRENT.
XLINCNT<cr> Type the number of lines in the current page.
(Useful formatting information).
⊗PPSETT<cr>
⊗XQUIT
⊗XRSYS
⊗XRUN
⊗SNKOFF
⊗SNKON
⊗TV
⊗TYPE
System commands to evoke E.
Basic commands
CE <string><cr>
Create a new file with the name and extension as
specified by string.
The file will contain a directory page and one
blank page. E will be in the ADD-LINE mode.
ET <existing file name><cr>
Enter E with the specified file. If the file has
but one text page, display this, otherwise
display the directory page.
ET Enter E with the most recently used file at the
place where last edited. This only works during
one login period unless one has used the K/F
form of logout.
R E;<string1>←<string2><cr>
Copy file named string2 into a new file named
string1, start E and display the as above.
If the string2 file has a valid directory this
is executed relatively rapidly, if not a new
directory will have to be created.
Switches, when used, are strings beginning with a slash which are
placed immediately after the name string that they are to modify.
/R Open the file in the read only mode. This is useful
if one wants to examine a file without any danger
of inadvertently modifying it.
example: ET TEACH.TXT[UP,DOC]/R<cr>
/2P Open the file displaying page 2.
/5L Open the file with the arrow at line 5.
This is not very useful by itself but see below.
When two or more switches are to be used they should be put together
inside parenthesis.
example: ET MYFILE(R4P5L)<cr>
Credits:
Dan Swinehart wrote TV, the original version of the display editor,
and created the original version of TEACH to teach the use of TV.
Fred Wright wrote the FAIL version, called E.
Brian Harvey modified TEACH to reflect differences between E AND TV.
Arthur Samuel redid Brian's version to allow for bugs that still exist
in E and to simplify the presentation, hopefully so as to make it
easier to read by a rank newcomer and at the same time to be useful
as a manual until the time when all the bugs have been removed
from E and a good manual can be written.
Disclaimer.
The following is copied from the earlier version of Teach. I hope soon
to make it entirely unnecessary, but it is still needed.
This document has not been entirely honest in describing the commands.
It has made available most of the features of the editor, but has not
necessarily described all the ways in which these features may be
invoked. Many commands have optional codings -- most may be called
using fewer control bits than we have required here. A complete
description of E features is available in the TV manual,
TVED.DCS[S,DOC], and the file TV2E.FW[UP,DOC] which describes how
E differs from TV.[YAH?]
APPENDIX A. INTER-LINE commands (see page 4 and 5 for details).
⊗P Go to the next PAGE.
⊗-⊗P Back up to the previous page. ! Try this and then return with ⊗P.
⊗+⊗7⊗P Go foreward 7 pages if possible otherwise to the last page.
⊗-⊗3⊗P Go backward 3 pages if possible otherwise to the first page.
⊗7⊗P Go to page 7.
⊗W Advance the WINDOW, that is, move the last line to the top.
If there is less than a windowful left, move the window only
enough to see to the end. (You know this).
⊗L Move the window up so that the first line becomes the LAST. This
is the reverse of ⊗W.
<cr> Move the "Current line" pointer down a line.
⊗> Move the pointer down 4 lines. This takes 4 keys at once.
⊗≥ Move the pointer down 16 lines. This also takes 4 keys.
<vt> Move the "Current line"pointer up a line.
⊗< Move the pointer up 4 lines. (Be sure to depress the <top> key).
⊗≤ move the pointer up 16 lines.
⊗T Move the pointer up to the TOP line, adjusting the window to show
a few lines above this if possible.
⊗B Move the pointer to the BOTTOM line, adjusting the window to show
a few more lines if possible.
⊗J Move (JUMP) the window so that the CURRENT line is at the top.
⊗D DELETE the entire CURRENT line.
⊗Q Insert a copy of the line just above CURRENT and open it
for editing (i.e. enter INTRA-LINE mode).
<form> Do a ⊗W if there is more material on this page, otherwise a ⊗P.
⊗. Write the windowed page (as corrected) into the disk file.
⊗E DO a ⊗. and then EXIT to the system monitor.
APPENDIX B INTRA-LINE commands (see page 6 and 7 for details).
α<space> Move the cursor to the right 1 space.
α4α<space> Move the cursor 4 spaces to the right.
α<bs> Move the cursor to the left 1 space.
α5α<bs> Move the cursor 5 spaces to the left.
α<form> Move the cursor to the start of the line.
α<tab> Move the cursor to the end of the line.
αS then <char> move the cursor to the first occurance of <char>.
α3αS then <char> move the cursor to the 3rd occurance of <char>
αD DELETE a character and move the rest of the line to the left.
If at the end of the line, this will delete the <cr>.
Caution: don't try to join two long lines.
<bs> BACK SPACE (at the end of the line or when a wrong character
has just been typed).
β<bs> Delete the character to the left of the cursor position.
β<char> Make room and insert <char> ahead of the cursor position.
β<cr> Insert a carriage return and stay in intra-line mode.
β<vt> DON'T, at least not until you know better.
αI Enter INSERT mode (like holding META down continuously).
Everything that you type including carriage returns but
excepting α,β or ⊗ commands will appear as text.
Any INTRA-LINE command will cause one to leave the INSERT
mode. The safest command under these conditions is α<space>.
<cr> Leave intra-line mode, accept the line and move CURRENT down.
α<cr> Leave intra-line mode, accept the line, do not advance CURRENT.
α<vt> Leave intra-line mode, accept the line and move current up.
<alt> Restore the line to it original condition and leave intra-mode.
⊗<vt> Accept the line and back CURRENT up a line.
⊗↑ Accept the line, then back to the end of the previous line.
⊗↓ Accept the line, then goes to the end of the next line.
APPENDIX C LINE-INSERT commands (see page 9 for details).
To enter the LINE-INSERT mode:
⊗<cr> Enter LINE-INSERT mode, insert a blank line ahead of the text
at CURRENT and mark the new line with the double arrow ↔.
If you are in the middle of a line, this will break the line
into two separate lines and position the cursor to be ready
to accept text at the end of the second portion. At the
present time a bug in E prevents the second portion from
showing until the next <cr> has been typed, but it's there.
This does something else, if you are in LINE-INSERT mode.
While in LINE-INSERT mode:
<cr> Accept the line and move the ↔ to newly inserted blank line.
α<cr> Leave the LINE-INSERT mode and accept the line in question.
⊗<cr> Insert a blank line (if not in the middle of a line).
If you are in the middle of a line, this will break the line
into two separate lines and position the cursor to be ready
to accept text at the end of the second portion. At the
present time a bug in E prevents the second portion from
showing until the next <cr> has been typed, but it's there.
<vt> Don't. This writes an integral sign on the screen but puts a
vertical tab symbol in the text which can do funny things.
α<vt> Leave the LINE-INSERT mode and accept the line but move the →
back to the line ahead of the accepted line.
⊗<vt> Don't.
If you are in the middle of a line, this will split the line
into two portions and cause the second portion to overwrite
the text in the line ahead of the one being edited.
<alt> Accept the line up to the cursor but delete the rest and leave
the LINE-INSERT mode with the arrow pointing to the remaining
text or to the next line.
APPENDIX D ATTACH and COPY commands (see page 8 for details).
⊗A ATTACH the CURRENT line and change the "→" to a "|".
⊗3⊗A ATTACH 3 lines starting with CURRENT aand mark these with "|'s".
If a number greater than 8 is used (for the 3 as in the example)
only the first 4 and the last 3 lines are shown. A row of dots
is used to indicate that some attached lines are not shown.
⊗E Deposit the attached lines as positioned and EXIT from the mode.
Note that this command has a different meaning when one is NOT
in the ATTACH mode (it then means EXIT editing). Don't stutter
when typing it. Give the system time to react.
⊗R REPLACE the attached lines in their original location and leave
the ATTACH mode.
⊗K KILL the attached lines (they go away beyond recall) and exit
from the ATTACH mode.
⊗C Make a COPY of the CURRENT line and ATTACH this copy.
⊗5⊗C Make a COPY of 5 lines starting with CURRENT and ATTACH these.
Relative arguments.
⊗+⊗A Attach 1 more line beyond those already attached.
⊗+⊗3⊗A Attach 3 more lines beyond those already attached.
⊗-⊗A Detach 1 line from the end of those already attached.
⊗-⊗2⊗A Detach 2 lines from the end of those already attached.
⊗+⊗C Copy 1 more line beyond those already copied.
⊗+⊗4⊗C Copy 4 more lines beyond those already copied.
⊗-⊗C Remove 1 line from the end of the copied set.
⊗-⊗2⊗C Remove 2 lines from the end of the copied set.
APPENDIX E EXTEND commands (see page 14 for details).
⊗XFIND see APPENDIX F.
αXFIND see APPENDIX F.
⊗XDRAW<cr> Redraw the complete screen. Used when glitches
show on the screen from whatever cause.
⊗XMARK<cr> Insert a page mark between the CURRENT line and
the line above it and display the new page.
⊗XDELETE<cr> Delete the page mark between this page and the next.
Note that using this command just after a ⊗XMARK
command does not undo the newly inserted mark
but it does delete the next mark.
⊗XCANCEL<cr> Do not write out the current page but instead
reread it in from the disk.
⊗XREADONLY<cr> If in read-write write out the current page and
then inhibit any further writing.
⊗XREADWRITE<cr> Disable the write-inhibit.
⊗XJFILL<cr> Redistribute text between lines as if to
justify but do not pad lines with blanks.
(see ⊗XJUST<cr> below for conditions).
⊗XJUST<cr> Justify the current page (to 69 characters).
If in ATTACH mode justify the attached lines.
⊗XJUST⊗13<cr> Justify 13 lines starting with CURRENT.
XLINCNT<cr> Type the number of lines in the current page.
(Useful formatting information).
Additional EXTEND commands thet may not be completely debugged.
⊗XAPPEND<cr> Read in an additional page after the current
one so that the two may be edited togather.
Effect is undone by ⊗XCANCEL<cr>.
Caution: this increases core size.
⊗XCLOSE
⊗XDIRED
⊗XDPYALWAYS
⊗XPPYSKIP
⊗XINSERT
⊗PPSETT<cr>
⊗XQUIT
⊗XRSYS
⊗XRUN
⊗SNKOFF
⊗SNKON
⊗TV
⊗TYPE
APPENDIX F FIND commands (see page 13 for details).
Single page finds
⊗FSmith<cr> Find Smith or smith but not this string in
blacksmith or in Smithsonian.
αFSmith<cr> Find smith as an isolated word or as a
part of a longer string (in blacksmith for example).
The string is no longer limited to alphamerics but
use care because there are still some bugs in E.
⊗3⊗Fsmith<cr> FIND the 3rd occurance of SMITH.
(or with α as above)
⊗Fsmith⊗3<cr> FIND the 3rd occurance of SMITH (alternate form).
(or with α as above)
Multi-page finds
⊗XF Smith<cr> for a delimited string, and
αXF Smith<cr> for the string regardless of surroundings.
Accepted action-defining delimiters are:
<cr> Move CURRENT to the found line or report failure.
α<cr> Terminate as with <cr> but move the cursor until it
is under the first character of the string.
Note that this leaves E in the INTRA-LINE mode. A
second FIND command can however be given and the
next occurance will be found.
If a FIND command is terminated with <cr>, an α<cr>
will still move the cursor to the string.
⊗J JUMP the line with the found string to the top of the
window.
⊗<cr> Enter the LINE-INSERT mode with the ↔ at an inserted
blank line ahead of the found line.
⊗P Make the search over the directory PAGE and then display
the referenced page.
⊗A Attach all lines starting with CURRENT up to and including
the line with the specified string.
If used with an EXTEND command and if the string is not
on the windowed page, the attachment will begin at
the top of the page on which the string is found.
Attachments do not cross page bountries.
⊗C COPY all lines starting with CURRENT up to and including
the line with the specified string.
See ⊗A above for restriction with an EXTEND command.
⊗D DELETE all lines beginning with CURRENT up to but not
including the line with the specified string.
See ⊗A above for EXTEND command restriction.
This is a very dangerous command so use it with caution.